package com.shujia.wyh.day01;


import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Properties;

/*
        配置文件：我们在上一个案例中虽然实现了对数据库的增删改，但是呢，如果今后，我们数据库地址发生了变化或者用户名或者密码或者其他的参数发生
        了变化，这时候，就必须得找到你的程序，修改对应得参数，非常麻烦。
        所以，在今今后的开发中，要使用到配置文件，在配置文件中进行写参数，然后在程序中引用。
        xml,yml,pro,properties等，txt

        java中jdk文档提供了一个类给我们使用Properties
        这个类可以将外部的配置文件创建出对应的对象，然后来获取配置中的一些参数值。

        IO流的知识：
            字节流
                字节输入流
                InputStream --- FileInputStream
                字节缓冲输入流：BufferedInputStream
                字节输出流
                OutputStream --- FileOutputStream
                字节缓冲输出流：BufferedOutputStream
            字符流 = 字符转换流 = 字节流+编码表
                字符输入流
                Reader---InputStreamReader--FileReader
                字符缓冲输入流：BufferedReader
                字符输出流
                Writer--OutputStreamWriter--FileWriter
                字符缓冲输出流：BufferedWriter


 */
public class JDBCTest3 {
    public static void main(String[] args) throws Exception {
        //使用Properties类中的无参构造方法来创建对象
        Properties properties = new Properties();


        //需要使用这个对象读取到我们自己配置的文件
        //使用java将外部数据读取进来，是输入流,使用字符缓冲输入流 BufferedReader
        //完整路径/绝对路径：带盘符的路径
        //相对路径：以项目为根目录的路径
        BufferedReader br = new BufferedReader(new FileReader("E:\\projects\\IdeaProjects\\bigdata21-mysql\\src\\com\\shujia\\wyh\\day01\\mysqlinfo.properties"));
        properties.load(br);

        String className = properties.getProperty("className");
        String url = properties.getProperty("url");
        String user = properties.getProperty("user");
        String password = properties.getProperty("password");

        //加载驱动
        Class.forName(className);
        //获取与数据库的连接对象
        Connection conn = DriverManager.getConnection(url, user, password);
        //获取操作数据库对象
        Statement stat = conn.createStatement();
        //执行sql语句
        int i = stat.executeUpdate("insert into dept(deptno,dname,loc) values(90,'数加','安徽合肥')");
        System.out.println(i == 1 ? "数据添加完毕！！" : "数据添加失败！！");

        //释放资源
        stat.close();
        conn.close();


    }
}
